# # 编译器
# CC = g++
# # 编译选项
# CFLAGS = -Wall -Wextra -fPIC
# # 目标文件名
# TARGET = liblog.a

# # 源文件列表
# SRCS = lwLog.h lwLog.cpp logLinux.h logLinux.cpp logWindows.h logWindows.cpp log.h
# # 目标文件列表
# OBJS = $(SRCS:.cpp=.o)

# # 默认目标
# all: $(TARGET)

# # 生成静态库
# $(TARGET): $(OBJS)
# 	ar rcs $(TARGET) $(OBJS)

# # 编译源文件为目标文件
# %.o: %.cpp
# 	$(CC) $(CFLAGS) -c $< -o $@

# # 清理生成的文件
# clean:
# 	rm -f $(OBJS) $(TARGET)

# 编译器与选项
CXX = g++
CXXFLAGS = -Wall -Wextra -fPIC  # 开启警告和位置无关代码
LDFLAGS = -shared                # 链接为动态库

# 目标动态库名（Linux 惯例：lib前缀 + 库名 + .so后缀）
TARGET = liblog.so

# 源文件列表
SRCS = lwLog.h lwLog.cpp logLinux.h logLinux.cpp logWindows.h logWindows.cpp log.h
# 中间目标文件
OBJS = $(SRCS:.cpp=.o)

# 默认目标：编译动态库
all: $(TARGET)

# 链接生成动态库
$(TARGET): $(OBJS)
	$(CXX) $(LDFLAGS) -o $@ $(OBJS)

# 编译源文件为目标文件（.o）
%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清理生成的文件
clean:
	rm -f $(OBJS) $(TARGET)